{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\Programs\\Anaconda\\envs\\gnnbook\\lib\\site-packages\\networkx\\drawing\\nx_pylab.py:433: UserWarning: No data for colormapping provided via 'c'. Parameters 'cmap' will be ignored\n",
      "  node_collection = ax.scatter(\n"
     ]
    },
    {
     "data": {
      "image/png": "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btb999+vv/zlL3r55Zf11a9+1eqSgKBEGAAQlpqamjR37lz9/e9/19q1a3XXXXdZXRIQtAgDAMLOiRMnNHv2bH366afauHGj8vLyrC4JCGqEAQBh5dChQ8rPz1dLS4tKSkqUk5NjdUlA0GM1AYCw8dFHH+n2229XVFSUtm/fThAAPEQYABAWtmzZoilTpig1NVVbt27V9ddfb3VJQMggDAAIeWvXrtWsWbN066236oMPPlBycrLVJQEhhTAAIKS9+OKLuvfee3X33Xfr3XffVf/+/a0uCQg5hAEAIck0Tf385z/XN77xDT366KN69dVXFRsba3VZQEgiDAAIOW63W08++aR++MMfavny5frlL38pu91udVlAyGJpIYCQ0t7erkceeUQvv/yynnvuOT3++ONWlwSEPMIAgJDhdDq1YMECvf/++3rllVd0//33W10SEBYIAwBCQkNDg770pS9p7969+vOf/6z8/HyrSwLCBmEAQNA7duyYZs2apWPHjmnTpk3Kzc21uiQgrBAGAAS18vJy5efny+VyaevWrbr55putLgkIO6wmABC0du/erYkTJ6pv377avn07QQDoJYQBAEFp8+bNmjp1qm644QZt3bpVaWlpVpcEhC3CAICg88Ybb+jOO+9UXl6eNm3apKSkJKtLAsIaYQBAUHnhhRd033336d5779U777yja665xuqSgLBHGAAQFEzT1M9+9jM99thj+s53vqM//OEPiomJsbosICKwmgCA5dxut5YuXarVq1drxYoV+rd/+zcZhmF1WUDEIAwAsFRbW5sWLVqkV199Vc8//7wee+wxq0sCIg5hAIBlzp07p/nz5+uDDz7Qa6+9poKCAqtLAiISYQCAJU6dOqU5c+bowIED+stf/qLp06dbXRIQsQgDAAKupqZGs2bNksPh0AcffKBx48ZZXRIQ0QgDAALqk08+UX5+vmw2m7Zt26asrCyrSwIiHksLAQTMrl27NHHiRA0YMIAgAAQRwgCAgNiwYYOmTZum4cOHq7i4WEOGDLG6JAD/RBgA0Ov+9Kc/ac6cOZoyZYo2bNigxMREq0sCcAHCAIBe9d///d964IEH9JWvfEVvv/224uLirC4JwEUIAwB6hWma+vd//3c9/vjjWrJkiX7/+98rOjra6rIAXAarCQD4ncvl0uLFi/XLX/5STz31lJYtW8b2wkAQ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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import networkx as nx\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "G = nx.Graph()\n",
    "G.add_edges_from([('A', 'B'), ('A', 'C'), ('B', 'D'), ('B', 'E'), ('C', 'F'), ('C', 'G')])\n",
    "\n",
    "plt.axis('off')\n",
    "nx.draw_networkx(G,\n",
    "                 pos=nx.spring_layout(G, seed=0),\n",
    "                 node_size=600,\n",
    "                 cmap='coolwarm',\n",
    "                 font_size=14,\n",
    "                 font_color='white'\n",
    "                 )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "DG = nx.DiGraph()\n",
    "DG.add_edges_from([('A', 'B'), ('A', 'C'), ('B', 'D'), ('B', 'E'), ('C', 'F'), ('C', 'G')])\n",
    "\n",
    "plt.axis('off')\n",
    "nx.draw_networkx(DG,\n",
    "                 pos=nx.spring_layout(G, seed=0),\n",
    "                 node_size=600,\n",
    "                 cmap='coolwarm',\n",
    "                 font_size=14,\n",
    "                 font_color='white'\n",
    "                 )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{('A', 'B'): Text(-0.17063150397490368, -0.25785521234238246, '10'),\n",
       " ('A', 'C'): Text(0.16908485308194388, 0.2584267536065791, '20'),\n",
       " ('B', 'D'): Text(-0.5751319512575159, -0.5819114840781281, '30'),\n",
       " ('B', 'E'): Text(-0.3070875406419613, -0.7577069745265291, '40'),\n",
       " ('C', 'F'): Text(0.5743060275721562, 0.5815239318372771, '50'),\n",
       " ('C', 'G'): Text(0.3081446719975651, 0.7583070963940803, '60')}"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "WG = nx.Graph()\n",
    "WG.add_edges_from([('A', 'B', {\"weight\": 10}), ('A', 'C', {\"weight\": 20}), ('B', 'D', {\"weight\": 30}), ('B', 'E', {\"weight\": 40}), ('C', 'F', {\"weight\": 50}), ('C', 'G', {\"weight\": 60})])\n",
    "labels = nx.get_edge_attributes(WG, \"weight\")\n",
    "\n",
    "plt.axis('off')\n",
    "nx.draw_networkx(WG,\n",
    "                 pos=nx.spring_layout(G, seed=0),\n",
    "                 node_size=600,\n",
    "                 cmap='coolwarm',\n",
    "                 font_size=14,\n",
    "                 font_color='white'\n",
    "                 )\n",
    "nx.draw_networkx_edge_labels(WG, pos=nx.spring_layout(G, seed=0), edge_labels=labels)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Is graph 1 connected? False\n",
      "Is graph 2 connected? True\n"
     ]
    }
   ],
   "source": [
    "G1 = nx.Graph()\n",
    "G1.add_edges_from([(1, 2), (2, 3), (3, 1), (4, 5)])\n",
    "print(f\"Is graph 1 connected? {nx.is_connected(G1)}\")\n",
    "\n",
    "G2 = nx.Graph()\n",
    "G2.add_edges_from([(1, 2), (2, 3), (3, 1), (1, 4)])\n",
    "print(f\"Is graph 2 connected? {nx.is_connected(G2)}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 800x800 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(8,8))\n",
    "plt.subplot(221)\n",
    "plt.axis('off')\n",
    "nx.draw_networkx(G1,\n",
    "                 pos=nx.spring_layout(G1, seed=0),\n",
    "                 node_size=600,\n",
    "                 cmap='coolwarm',\n",
    "                 font_size=14,\n",
    "                 font_color='white'\n",
    "                 )\n",
    "plt.subplot(222)\n",
    "plt.axis('off')\n",
    "nx.draw_networkx(G2,\n",
    "                 pos=nx.spring_layout(G2, seed=0),\n",
    "                 node_size=600,\n",
    "                 cmap='coolwarm',\n",
    "                 font_size=14,\n",
    "                 font_color='white'\n",
    "                 )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "deg(A) = 2\n",
      "deg^-(A) = 0\n",
      "deg^+(A) = 2\n"
     ]
    }
   ],
   "source": [
    "G = nx.Graph()\n",
    "G.add_edges_from([('A', 'B'), ('A', 'C'), ('B', 'D'), ('B', 'E'), ('C', 'F'), ('C', 'G')])\n",
    "print(f\"deg(A) = {G.degree['A']}\")\n",
    "\n",
    "DG = nx.DiGraph()\n",
    "DG.add_edges_from([('A', 'B'), ('A', 'C'), ('B', 'D'), ('B', 'E'), ('C', 'F'), ('C', 'G')])\n",
    "print(f\"deg^-(A) = {DG.in_degree['A']}\")\n",
    "print(f\"deg^+(A) = {DG.out_degree['A']}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Degree centrality      = {'A': 0.3333333333333333, 'B': 0.5, 'C': 0.5, 'D': 0.16666666666666666, 'E': 0.16666666666666666, 'F': 0.16666666666666666, 'G': 0.16666666666666666}\n",
      "Closeness centrality   = {'A': 0.6, 'B': 0.5454545454545454, 'C': 0.5454545454545454, 'D': 0.375, 'E': 0.375, 'F': 0.375, 'G': 0.375}\n",
      "Betweenness centrality = {'A': 0.6, 'B': 0.6, 'C': 0.6, 'D': 0.0, 'E': 0.0, 'F': 0.0, 'G': 0.0}\n"
     ]
    }
   ],
   "source": [
    "print(f\"Degree centrality      = {nx.degree_centrality(G)}\")\n",
    "print(f\"Closeness centrality   = {nx.closeness_centrality(G)}\")\n",
    "print(f\"Betweenness centrality = {nx.betweenness_centrality(G)}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "adj = [[0,1,1,0,0,0,0],\n",
    "       [1,0,0,1,1,0,0],\n",
    "       [1,0,0,0,0,1,1],\n",
    "       [0,1,0,0,0,0,0],\n",
    "       [0,1,0,0,0,0,0],\n",
    "       [0,0,1,0,0,0,0],\n",
    "       [0,0,1,0,0,0,0]]\n",
    "\n",
    "edge_list = [(0, 1), (0, 2), (1, 3), (1, 4), (2, 5), (2, 6)]\n",
    "\n",
    "adj_list = {\n",
    "    0: [1, 2],\n",
    "    1: [0, 3, 4],\n",
    "    2: [0, 5, 6],\n",
    "    3: [1],\n",
    "    4: [1],\n",
    "    5: [2],\n",
    "    6: [2]\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['A', 'B', 'C', 'D', 'E', 'F', 'G']"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "G = nx.Graph()\n",
    "G.add_edges_from([('A', 'B'), ('A', 'C'), ('B', 'D'), ('B', 'E'), ('C', 'F'), ('C', 'G')])\n",
    "\n",
    "def bfs(graph, node):\n",
    "    visited, queue = [node], [node]\n",
    "\n",
    "    while queue:\n",
    "        node = queue.pop(0)\n",
    "        for neighbor in graph[node]:\n",
    "            if neighbor not in visited:\n",
    "                visited.append(neighbor)\n",
    "                queue.append(neighbor)\n",
    "\n",
    "    return visited\n",
    "\n",
    "bfs(G, 'A')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['A', 'B', 'D', 'E', 'C', 'F', 'G']"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "visited = []\n",
    "\n",
    "def dfs(visited, graph, node):\n",
    "    if node not in visited:\n",
    "        visited.append(node)\n",
    "        for neighbor in graph[node]:\n",
    "            visited = dfs(visited, graph, neighbor)\n",
    "\n",
    "    return visited\n",
    "\n",
    "dfs(visited, G, 'A')"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "gnnbook",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.16"
  },
  "orig_nbformat": 4,
  "vscode": {
   "interpreter": {
    "hash": "7fa0016a911d70e86532c5706c9b4690ef8aee26a1d06018a1e37e463667ff8c"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
